学生管理系统之增删改查:MySQL数据库(Java) 您所在的位置:网站首页 eclipse mysql 增删改查 学生管理系统之增删改查:MySQL数据库(Java)

学生管理系统之增删改查:MySQL数据库(Java)

2023-07-30 08:03| 来源: 网络整理| 查看: 265

Java连接MySQL数据库:

工具:eclipse MySQL连接驱动:mysql-connector-java-8.0.16.jar

加载驱动:

在工程目录中创建lib文件夹,将下载好的jar文件放到该文件夹下,如下图所示: 在这里插入图片描述右键工程名,在java build path选择Add JARs…,选择刚才添加的jar包,如下图:在这里插入图片描述

数据库准备: 在数据库Hero中创建数据表List; 连接数据库并读取数据:   数据库名称:Hero   数据包名称:List   端口号:3306   用户名:root   密码:371128

Java代码如下:

import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import java.util.Scanner; public class connection { //在主函数中连接数据库的操作 public static void main(String[] args) { //声明Connection对象 Connection con; //驱动程序名 String driver = "com.mysql.cj.jdbc.Driver"; //URL指向要访问的数据库名Hero String url = "jdbc:mysql://localhost:3306/Hero?useSSL=false&serverTimezone=UTC"; //MySQL配置时的用户名 String user = "root"; //MySQL配置时的密码 String password = "371128"; //遍历查询结果集 try { //加载驱动程序 Class.forName(driver); //1.getConnection()方法,连接MySQL数据库!! con = DriverManager.getConnection(url,user,password); if(!con.isClosed()) System.out.println("Succeeded connecting to the Database!"); //2.创建statement类对象,用来执行SQL语句!! Statement statement = con.createStatement(); //要执行的SQL语句 String sql = "select * from List"; while(true) { //学生管理系统主界面 //3.ResultSet类,用来存放获取的结果集!! ResultSet rs = statement.executeQuery(sql); System.out.println("--------欢迎来到学生管理系统--------"); System.out.println("1 查看所有学生信息"); System.out.println("2 添加学生"); System.out.println("3 删除学生"); System.out.println("4 修改学生"); System.out.println("5 退出"); System.out.println("请输入你的选择:"); //创建键盘录入对象 Scanner sc = new Scanner(System.in); String choiceString = sc.nextLine(); //用switch语句实现选择 switch(choiceString) {//以下均为调用静态方法 case "1": //查看所有学生 findAlldata(rs); break; case "2": //添加学生 adddata(statement,rs); break; case "3": //删除学生 deletedata(rs,statement); break; case "4": //修改学生 updatedata(rs,statement); break; case "5": default: System.out.println("谢谢你的使用"); System.exit(0); //JVM退出 break; } } } catch(ClassNotFoundException e) { //数据库驱动类异常处理 System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); } catch(SQLException e) { //数据库连接失败异常处理 e.printStackTrace(); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ System.out.println("数据库数据成功获取!!"); } } //添加学生信息 传入Statement对象执行sql语句 private static void adddata(Statement statement,ResultSet rs) throws SQLException { Scanner sc=new Scanner(System.in); String str=null; while(true) { //判断学号有没有被人占用 System.out.println("请输入学生学号:"); String id = sc.nextLine(); str=id; //定义标记 boolean flag = false; //遍历数据库,得到每一个学生 while(rs.next()){ //获取该学生的学号,和键盘录入的学号进行比较 if(rs.getString("id").equals(id)) { flag = true; //说明学号被占用了 break; } } if(flag) { System.out.println("你输入的学号已经被占用,请重新输入"); }else { break; //结束循环 } } System.out.println("请输入学生姓名:"); String name = sc.nextLine(); System.out.println("请输入学生性别:"); String sex = sc.nextLine(); System.out.println("请输入学生联系电话:"); String phone = sc.nextLine(); String sql="insert into List(id,name,winrate,profession) values('"+str+"','"+name+"','"+sex+"','"+phone+"')"; statement.executeUpdate(sql);//执行sql语句 rs.close(); } //展示所有学生信息 private static void findAlldata(ResultSet rs) throws SQLException { // TODO Auto-generated method stu! String name = null; String id = null; String winrate=null; String profession=null; while(rs.next()){ //获取name这列数据 name = rs.getString("name"); //获取id这列数据 id = rs.getString("id"); winrate=rs.getString("winrate"); profession=rs.getString("profession"); //输出结果 System.out.println(id + "\t" + name+"\t"+winrate+"\t"+profession); } rs.close(); } //删除学生信息 private static void deletedata(ResultSet rs,Statement state) throws SQLException { // TODO Auto-generated method stub //删除学生的思路:键盘录入一个学号,到数据库中去查找,看是否有学生使用的是该学号,如果有就删除该学生 Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除的学生的学号:"); String id = sc.nextLine(); //我们必须给出学号不存在的时候的提示 //遍历数据库 while(rs.next()) { //拿这个学生对象的学号和键盘录入的学号进行比较 if(rs.getString("id").equals(id)) { String delete="delete from List where id='"+id+"'"; state.executeUpdate(delete); } } } //更改学生信息 private static void updatedata(ResultSet rs,Statement state) throws SQLException { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("请输入你要修改的学生的学号:"); String id = sc.nextLine(); boolean bo=false; //遍历集合 while(rs.next()) { //拿学生对象的学号和数据库的学号进行比较 if(rs.getString("id").equals(id)) { bo=true; break; } } if(bo == false) { System.out.println("不好意思,你要修改的学号对应的学生信息不存在,请回去重新你的选择"); }else { System.out.println("请输入要更新的选项"); System.out.println("1 姓名"); System.out.println("2 性别"); System.out.println("3 联系电话"); int n; n=sc.nextInt(); if(n==1) { System.out.println("请输入学生新姓名:"); String name = sc.next(); String insertsql2 ="update List set name = '"+name+"' where id='"+id+"'"; //更新语句 state.executeUpdate(insertsql2); }else if(n==2) { System.out.println("请输入学生新性别:"); String age = sc.next(); String insertsql3 ="update List set winrate = '"+age+"' where id='"+id+"'"; //更新语句 state.executeUpdate(insertsql3); }else if(n==3) { System.out.println("请输入学生新联系电话:"); String phone = sc.next(); String insertsql4 ="update List set profession = '"+phone+"' where id='"+id+"'"; //更新语句 state.executeUpdate(insertsql4); }else { System.out.println("输入格式错误,请重新输入"); } System.out.println("修改学生成功"); } } }

思路构架:

编写代码时,在主函数中连接mysql数据库,随后用switch语句选择要进行的操作,每个判定都对应一个静态方法供执行操作—增删改查;编写每个静态方法时,都需要传入连接数据库时创建的Statement 对象或ResultSet 对象做参来执行数据库语句;随后分别编写每个方法即可,注意MySQL语句的使用。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有